fix: memory leaks in Item wrappers and optimize CustomItems#763
fix: memory leaks in Item wrappers and optimize CustomItems#763MS-crew wants to merge 12 commits intoExMod-Team:devfrom
Conversation
|
ughhh this is gonna take me forever to read 😭 |
Someone-193
left a comment
There was a problem hiding this comment.
ok I think everything here seems fine, but this definitely needs good testing lol. If you could Ms, could you test this PR on your server like how you mentioned you got the stamina problem on a server on dev?
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Description
Updated Item.Destroy so if an item isnt actually in an inventory it properly removes it from the dict and forces gameobject destroy so the leak is completely gone.
CustomGrenade.Throw was throwing nres when player was null cause server host doesnt have a camera or fpc role. also it was spawning a whole dummy item just to throw it which is bad for perf so i rewrote it to just use native throwable templates.
CustomWeapon.Spawn was leaving the temporary firearm in memory after creating the pickup. added a destroy call for that.
Fixed genericfirearm damage handler cause ragdolls were only showing bullet wounds and when dying attacker is null from client side. it reads the ammo type directly from the native template module now.
GenerateAttachments was literally spawning every single gun on server startup just to read attachments which is nonsense. changed it to use native templates
fun fact: before this fix, exiled was casually leaving 14 dead firearm objects in memory on server startup before any plugins even did anything. that's completely gone now.
What is the current behavior? (You can also link to an open issue here)
What is the new behavior? (if this is a feature change)
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information:
Types of changes
Submission checklist
Patches (if there are any changes related to Harmony patches)
Other